package org.example.service.impl;

import org.example.Mapper.NitChatMapper;
import org.example.Mapper.NitRecordMapper;
import org.example.domain.NitChat;
import org.example.domain.NitRecord;
import org.example.service.NitRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Date;

@Service
public class NitRecordServiceImpl implements NitRecordService {

    @Autowired
    private NitRecordMapper nitRecordMapper;

    @Autowired
    private NitChatMapper nitChatMapper;

    @Override
    public void insertOneNitRecord(NitRecord nitRecord) {
        if(nitRecord.getQq().isEmpty()){
            nitRecord.setQq("对方未提供QQ号~");
        }
        nitRecord.setDate(new Date());
        nitRecordMapper.insertOneNitRecord(nitRecord);
    }

    @Override
    public NitRecord[] selectNitRecordsByUserId(Integer userId) {
        return nitRecordMapper.selectNitRecordsByUserId(userId);
    }

    @Override
    public NitRecord[] selectNitRecordsByAnswer(Integer isAnswer,Integer adminId) {
        return nitRecordMapper.selectNitRecordsByAnswer(isAnswer,adminId);
    }

    @Override
    public Integer answerNitRecordById(NitRecord nitRecord) {
        NitRecord nitRecord1=nitRecordMapper.selectNitRecordById(nitRecord.getId());
        if(nitRecord1.getAnswer()==null){
            nitRecordMapper.answerNitRecordById(nitRecord);
            return 1;
        } else {//已经被其他管理员答复
            return 0;
        }
    }

    @Override
    public ArrayList<NitRecord> selectContinueNitRecordsByUserId(Integer userId) {
        NitChat[] nitChats=nitChatMapper.selectLastNitChatsByUserId(userId);
        ArrayList<NitRecord> nitRecords=new ArrayList<>();
        for (NitChat item : nitChats) {
            NitRecord nitRecord=nitRecordMapper.selectNitRecordById(item.getNitRecordId());
            nitRecords.add(nitRecord);
        }
        return nitRecords;
    }

    @Override
    public ArrayList<NitRecord> selectContinueNitRecordsByAdminId(Integer adminId) {
        NitChat[] nitChats=nitChatMapper.selectLastNitChatsByAdminId(adminId);
        ArrayList<NitRecord> nitRecords=new ArrayList<>();
        for (NitChat item : nitChats) {
            NitRecord nitRecord=nitRecordMapper.selectNitRecordById(item.getNitRecordId());
            nitRecords.add(nitRecord);
        }
        return nitRecords;
    }
}
